Secondary color uniformity compensation mechanism

ABSTRACT

A printing system is disclosed. The printing system includes at least one physical memory device to store calibration logic and one or more processors coupled with the at least one physical memory device to execute the calibration logic to perform uniformity compensation of a plurality of secondary colors printed by pel forming elements, each of the pel forming elements associated with one of a plurality of primary colors, including generating a uniformity compensated first primary color transfer function for each of the pel forming elements associated with a first primary color and a uniformity compensated second color transfer function for each of the pel forming elements associated with a second primary color, generating an updated uniformity compensated first primary color transfer function for each of the pel forming elements associated with the first primary color and a uniformity compensated third primary color transfer function for each of the pel forming elements associated with a third primary color and generating an updated uniformity compensated second primary color transfer function for each of the pel forming elements associated with the second primary color and an updated uniformity compensated third primary color transfer function for each of the pel forming elements associated with a third primary color.

FIELD OF THE INVENTION

The invention relates to the field of image reproduction, and inparticular, to uniformity correction.

BACKGROUND

When correcting cross-web spatial non-uniformity of a print engine withmultiple fixed print heads, relatively large non-uniformities may occurat the junction between the print heads and within a printhead. However,correction of each print head nozzle using interpolated reflectancemeasurements does not fix this problem since the correction of eachnozzle affects the reflectance of nearby locations, and because gaps oroverlaps between print head segments are not accounted for when nozzlesare independently compensated.

Moreover, fiducial marks at the print head segment boundaries can beused to accurately locate individual nozzles. This facilitates derivinga transfer function for each individual nozzle within a print head, sothat the corrections based on measurements precisely centered on eachnozzle can be applied to the proper nozzle. Nonetheless, the print headsegment boundaries remain uncontrolled, and corrections to nearbynozzles will continue to interact.

Furthermore, creating uniformity compensation based on measurements ofC, M, Y, K primary colors can generate suboptimal results when printingusing secondary colors, Red, Green or Blue. Secondary colors areproduced by a combination of the primary colors. In some cases,acceptable variations in uniformity for each primary color will produceuniformity that is not acceptable when printing a secondary color.

Accordingly, a mechanism to perform nozzle uniformity compensation,based on both primary and secondary colors, is desired.

SUMMARY

In one embodiment, a printing system is disclosed. The printing systemincludes at least one physical memory device to store calibration logicand one or more processors coupled with at least one physical memorydevice to execute the calibration logic to perform uniformitycompensation of a plurality of secondary colors printed by pel formingelements, each of the pel forming elements associated with one of aplurality of primary colors, including generating a uniformitycompensated first primary color transfer function for each of the pelforming elements associated with a first primary color and a uniformitycompensated second color transfer function for each of the pel formingelements associated with a second primary color, generating an updateduniformity compensated first primary color transfer function for each ofthe pel forming elements associated with the first primary color and auniformity compensated third primary color transfer function for each ofthe pel forming elements associated with a third primary color andgenerating an updated uniformity compensated second primary colortransfer function for each of the pel forming elements associated withthe second primary color and an updated uniformity compensated thirdprimary color transfer function for each of the pel forming elementsassociated with a third primary color.

BRIEF DESCRIPTION OF THE DRAWINGS

A better understanding of the present invention can be obtained from thefollowing detailed description in conjunction with the followingdrawings, in which:

FIG. 1 is a block diagram of one embodiment of a printing system;

FIG. 2 is a block diagram of one embodiment of a print controller;

FIG. 3 illustrates one embodiment of multibit halftone designs, wherethe halftones are described using multi-bit threshold arrays (MTAs);

FIG. 4 illustrates one embodiment of calibration module;

FIG. 5 illustrates one embodiment of a transfer function for a nozzlelocation;

FIG. 6 is a flow diagram illustrating one embodiment of a uniformitycompensation process performed by a printing system;

FIG. 7 is a flow diagram illustrating another embodiment of a uniformitycompensation process performed by a printing system;

FIG. 8 illustrates one embodiment of a secondary color uniformitycompensation process performed by a printing system;

FIG. 9 illustrates another embodiment of a secondary color uniformitycompensation process performed by a printing system;

FIG. 10 illustrates one embodiment of a tertiary color uniformitycompensation process performed by a printing system;

FIG. 11 illustrates another embodiment of a tertiary color uniformitycompensation process performed by a printing system;

FIG. 12 illustrates yet another embodiment of a secondary coloruniformity compensation process performed by a printing system;

FIG. 13 illustrates still another embodiment of a secondary coloruniformity compensation process performed by a printing system;

FIG. 14 illustrates one embodiment of a calibration module implementedin a network; and

FIG. 15 illustrates one embodiment of a computer system.

DETAILED DESCRIPTION

A uniformity compensation mechanism is described. In the followingdescription, for the purposes of explanation, numerous specific detailsare set forth to provide a thorough understanding of the presentinvention. It will be apparent, however, to one skilled in the art thatthe present invention may be practiced without some of these specificdetails. In other instances, well-known structures and devices are shownin block diagram form to avoid obscuring the underlying principles ofthe present invention.

Reference in the specification to “one embodiment” or “an embodiment”means that a particular feature, structure, or characteristic describedin connection with the embodiment is included in at least one embodimentof the invention. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment.

FIG. 1 is a block diagram illustrating one embodiment of a printingsystem 130. A host system 110 is in communication with the printingsystem 130 to print a sheet image 120 onto a print medium 180 via aprinter 160 (e.g., print engine). Print medium 180 may include paper,card stock, paper board, corrugated fiberboard, film, plastic,synthetic, textile, glass, composite or any other tangible mediumsuitable for printing. The format of print medium 180 may be continuousform or cut sheet or any other format suitable for printing. Printer 160may be an ink jet, electrophotographic or another suitable printer type.

In one embodiment, printer 160 comprises one or more print heads 162,each including one or more pel forming elements 165 that directly orindirectly (e.g., by transfer of marking material through anintermediary) forms the representation of picture elements (pels) on theprint medium 180 with marking material applied to the print medium. Inan ink jet printer, the pel forming element 165 is a tangible devicethat ejects the ink onto the print medium 180 (e.g., an ink jet nozzle)and, in an electro-photographic (EP) printer the pel forming element maybe a tangible device that determines the location of toner particlesprinted on the print medium (e.g., an EP exposure LED or an EP exposurelaser). The pel forming elements may be grouped onto one or moreprintheads. The pel forming elements 165 may be stationary (e.g., aspart of a stationary printhead) or moving (e.g., as part of a printheadthat moves across the print medium 180) as a matter of design choice.The pel forming elements 165 may be assigned to one of one or more colorplanes that correspond to types of marking materials (e.g., Cyan,Magenta, Yellow, and blacK (CMYK)). These types of marking materials maybe referred to as primary colors.

In a further embodiment, printer 160 is a multi-pass printer (e.g., dualpass, 3 pass, 4 pass, etc.) wherein multiple sets of pel formingelements 165 print the same region of the print image on the printmedium 180. The set of pel forming elements 165 may be located on thesame physical structure (e.g., an array of nozzles on an ink jet printhead) or separate physical structures. The resulting print medium 180may be printed in color and/or in any of a number of gray shades,including black and white (e.g., Cyan, Magenta, Yellow, and blacK,(CMYK) and secondary colors (e.g., Red, Green and Blue), obtained usinga combination of two primary colors). The host system 110 may includeany computing device, such as a personal computer, a server, or even adigital imaging device, such as a digital camera or a scanner.

The sheet image 120 may be any file or data that describes how an imageon a sheet of print medium 180 should be printed. For example, the sheetimage 120 may include PostScript data, Printer Command Language (PCL)data, and/or any other printer language data. The print controller 140processes the sheet image to generate a bitmap 150 for transmission.Bitmap 150 may be a halftoned bitmap (e.g., a calibrated halftone bitmap generated from calibrated halftones, or uncalibrated halftone bitmap generated from uncalibrated halftones) for printing to the printmedium 180. The printing system 130 may be a high-speed printer operableto print relatively high volumes (e.g., greater than 100 pages perminute).

The print medium 180 may be continuous form paper, cut sheet paper,and/or any other tangible medium suitable for printing. The printingsystem 130, in one generalized form, includes the printer 160 thatpresents the bitmap 150 onto the print medium 180 (e.g., via toner, ink,etc.) based on the sheet image 120. Although shown as a component ofprinting system 130, other embodiments may feature printer 160 as anindependent device communicably coupled to print controller 140.

The print controller 140 may be any system, device, software, circuitryand/or other suitable component operable to transform the sheet image120 for generating the bitmap 150 in accordance with printing onto theprint medium 180. In this regard, the print controller 140 may includeprocessing and data storage capabilities. In one embodiment, measurementmodule 190 is implemented as part of a halftone calibration system toobtain measurements of the printed medium 180. The measured results arecommunicated to print controller 140 to be used in the halftonecalibration process. The measurement system may be a stand-alone processor be integrated into the printing system 130.

According to one embodiment, measurement module 190 may be a sensor totake optical measurements of printed images on print medium 180.Measurement module 190 may generate and transmit measurement data 222.Measurement data 222 may be OD (e.g., optical density) and/or perceptuallightness (e.g., L* in the CIELAB color space L*a*b*) data correspondingto a printed image. In one embodiment, measurement module 190 maycomprise one or more sensors that each or in total take measurements forprinted markings produced for some or all pel forming elements 165. Inanother embodiment, measurement module 190 may be a camera system,in-line scanner, densitometer or spectrophotometer. In a furtherembodiment, measurement data 222 may include a map information tocorrelate portions of the measurement data 222 (e.g., OD data) to thecorresponding pel forming elements 165 that contributed to the portionsof the measurement data 222. In another embodiment, the printinstructions for a test pattern (e.g., step chart) provides thecorrelation of the portions of the measurement data to the correspondingpel forming elements that contributed to the portions of the measurementdata 222.

FIG. 2 is a block diagram illustrating one embodiment of a printcontroller 140. The print controller 140, in its generalized form,includes an interpreter module 212, a halftoning module 214, and acalibration module 216. These separate components may represent hardwareused to implement the print controller 140. Alternatively, oradditionally, the separate components may represent logical blocksimplemented by executing software instructions in a processor of theprinter controller 140.

The interpreter module 212 is operable to interpret, render, rasterize,or otherwise convert images (e.g., raw sheetside images such as sheetimage 120) of a print job into sheetside bitmaps. The sheetside bitmapsgenerated by the interpreter module 212 for each primary color are eacha 2-dimensional array of pels representing an image of the print job(i.e., a Continuous Tone Image (CTI)), also referred to as fullsheetside bitmaps. The 2-dimensional pel arrays are considered “full”sheetside bitmaps because the bitmaps include the entire set of pels forthe image. The interpreter module 212 is operable to interpret or rendermultiple raw sheetsides concurrently so that the rate of renderingsubstantially matches the rate of imaging of production print engines.

Halftoning module 214 is operable to represent the sheetside bitmaps ashalftone patterns of ink. For example, halftoning module 214 may convertthe pels (also known as pixels) to halftone patterns of CMYK ink forapplication to the paper. A halftone design may comprise a pre-definedmapping of input pel gray levels to output drop sizes based on pellocation.

In one embodiment, the halftone design may include a finite set oftransition thresholds between a finite collection of successively largerdrop sizes, beginning with zero and ending with a maximum drop size(e.g., threshold arrays such as single bit threshold arrays or multibitthreshold arrays). In another embodiment, the halftone design mayinclude a three-dimensional look-up table with all included gray levelvalues.

In a further embodiment, halftoning module 214 performs the multi-bithalftoning using the halftone design consisting of a set of thresholdvalues for each pel in the sheetside bitmap, where there is onethreshold for each non-zero ink drop size. The pel is halftoned with thedrop size corresponding to threshold values for that pel. These set ofthresholds for a collection of pels is referred to as a multi-bitthreshold array (MTA).

Multi-bit halftoning is a halftone screening operation in which thefinal result is a selection of a specific drop size available from anentire set of drop sizes that the print engine is capable of employingfor printing. Drop size selection based on the contone value of a singlepel is referred to as “Point Operation” halftoning. The drop sizeselection is based on the pel values in the sheetside bitmap. Thiscontrasts with “Neighborhood Operation” halftoning, where multiple pelsin the vicinity of the pel being printed are used to determine the dropsize. Examples of neighborhood operation halftoning include thewell-known error diffusion method.

Multi-bit halftoning is an extension of binary halftoning, where binaryhalftoning may use a single threshold array combined with a logicaloperation to decide if a drop is printed based on the contone level fora pel. Binary halftoning uses one non-zero drop size plus a zero dropsize (i.e., a drop size of none where no ink is ejected). Multi-bithalftoning extends the binary threshold array concept to more than onenon-zero drop size.

Multi-bit halftoning may use multiple threshold arrays (i.e., multi-bitthreshold arrays), one threshold array for each non-zero drop size. Thepoint operation logic is also extended to a set of greater than and lessthan or equal to operations to determine the drop size by comparing thethreshold and image contone data for each pel. Multi-bit defines a powerof two set of drop sizes (e.g., two-bit halftone designs have four totaldrops, including a zero drop size). While power of two may be employedto define the number of drops, systems not following this such as athree total drop system may be used and are still considered multi-bit.

For multi-bit halftones, as shown in FIG. 3, the MTA is athree-dimensional array including one two-dimensional array for eachdrop size transition. Thus an MTA includes a set of two-dimensionalarrays of thresholds for transition between drop sizes: plane oneprovides the threshold for the Large output level, while plane 2 andplane 3 provide thresholds for the Medium and Small output levelsrespectively for a system having three drop sizes not including zerodrop size (none or off). In other embodiments, different one-to-onerelationship may be used since the correspondence between plane numbersand drop sizes is arbitrary.

To use these threshold arrays for halftoning, in the case where thethreshold arrays are smaller than the sheetside map, each multibitthreshold array is tiled across contone image data provided by thesheetside bitmap, which provides a set of threshold values for each pelin the sheetside bitmap. The contone image data (e.g., gray level data)is logically compared to the threshold data on a pel basis. In the caseof Large drops, they are produced by the halftoning when the imagecontone data is greater than the respective large threshold values inplane 1.

Medium drops are produced when the image data is greater than the mediumdrop plane 2 thresholds and also the image data is less than or equal tothe large drop thresholds in plane 1. Small drops are produced when theimage data is greater than the small drop thresholds in plane 3 and alsothe image data is less than or equal to the medium drop thresholds inplane 2.

Finally, the off/none drop size occurs for cases when the contone valuesis less than or equal to the small drop thresholds in plane 3. In thisembodiment of a two-bit multibit printing system, this set of fourlogical equations, used with thresholds from each plane of the multibitthreshold array permit each printing drop size to be defined based onthe contone values.

In other embodiments, the number of planes of threshold data can beextended to handle any number of drop sizes. The data from thesetwo-dimensional arrays may be segmented into separate memory regions andstored in any convenient order. For example, the thresholds for eachdrop size transition may be stored contiguously in memory, and it isoften advantageous to do so.

Calibration module 216 performs a calibration process on anun-calibrated halftone 218, or previously generated uniformitycompensated halftone, received at print controller 140 to generate oneor more calibrated halftones 220. Calibrated halftones 220 are thenreceived at halftoning module 214 along with the sheetside bitmap. Inone embodiment, an un-calibrated halftone 218 represents a referencehalftone design that is modified to create the calibrated halftones. Insuch an embodiment, measurements of the system response (e.g.,measurement data 222) are received via measurement module 190 using theun-calibrated halftone 218 for printing.

According to one embodiment, calibration module 216 performs aniterative process to achieve uniformity compensation of a calibratedhalftone. As used herein, uniformity compensation is defined as acalibration to compensate for measured response differences at a singlepel, by a pel forming element 165 (e.g., print head nozzle).

In one embodiment, an un-calibrated halftone 218 is initially receivedat calibration module 216 and is used to generate a uniformitycalibrated halftone. Subsequently, an iterative process is performedthat results in a generation of refined uniformity calibrated halftonesafter each iteration in order to improve uniformity, where eachiteration compensates for marking differences of pel forming elements165. In each case the halftone from the previous iteration is used toprint the markings that are measured and used to generate the currentuniformity compensation data. In other words, the calibrated halftonecreated for iteration number two is based on measurements of marksprinted using the calibrated halftone from iteration number one.

In a further embodiment, the iterative process is completed once adetermination is made that optical density (OD) variations for the pelforming elements 165 for a calibrated halftone are less than apredetermined uniformity threshold associated with a target uniformitycompensation specification. The uniformity threshold may be received asan input, or it may be fixed. In yet a further embodiment, a calibratedhalftone is saved as a uniformity compensated halftone upon adetermination during an iteration that that the OD variations are lessthan the predetermined threshold.

FIG. 4 illustrates one embodiment of calibration module 216. As shown inFIG. 4, calibration module 216 includes a step chart generator 410implemented to print a calibration step chart. In one embodiment, stepchart generator 410 generates an initial step chart based onun-calibrated halftone 218. In such an embodiment, the initial stepchart uses a threshold array associated with the uncalibrated halftonedesign to generate the calibration step chart. In subsequent iterations,step chart generator 410 generates a step chart based on a thresholdarray associated with a current uniformity compensated halftone.

In one embodiment, the calibration step chart is printed by the pelforming elements 165 of printer 160, and an image of the calibrationstep chart is measured by measurement module 190 (e.g., via a scanner).In such an embodiment, measurement module 190 generates measurement data222 (e.g., print image measurement data), which includes OD datameasured for a uniform grid across the web of the print medium for eachpel forming element 165.

The calibration step chart (e.g., test print image) typically includes anumber of steps (e.g., bars or stripes) of uniform density in whichthere may be at least one halftone pattern for each color of ink used bythe printer. The stripe densities range from paper white (no ink) tomaximum density for each ink color. Enough intermediate densities areincluded to allow interpolation to accurately recover the averagemeasured density corresponding to each color value by interpolation. Thesteps or bars are arranged so that every segment or portion of the printhead prints every color and shade of every color of ink at some point inthe chart pattern. Enough pixels are included in the height of the barso that the random variations in the halftone design are averaged awayby averaging measured densities over the bar height. In one embodiment,there is one row in each bar for each row in the halftone thresholdarray, so that each bar constitutes a complete sample of the halftonedesign's threshold distribution, and there is no sampling noise includedin the measurement due to halftoning of the step chart before printing.

Calibration module 216 also includes Measurement comparison logic 420 toreceive the measurement data 222 (e.g., OD data or perceptual lightnessL* data) and determine whether the measurement data 222 (e.g., OD)variations for the pel forming elements 165 are less than apredetermined threshold associated with the target uniformitycompensation specification. OD variations are differences in the averagemeasured OD values of the printing resulting from one print head nozzle(e.g., pixel) versus measured OD values from one or more other nozzlesin response to the same color value input being printed.

Perceptual lightness (L*) variations may be determine based on Delta E.The uniformity compensation specification comprises a maximum allowablevalue for these differences or to limits on statistics related to thedistribution of differences, such as limits on the mean and standarddeviation of the differences. The statistics may include a weightingfactor for the OD values wherein the weighting factor is higher forother nozzles that are closer to the one nozzle than other nozzlesfarther away. In one embodiment, the predetermined threshold is receivedat calibration module 216 from a system user via a graphical userinterface (GUI) 460.

Upon a determination that the variations are less than thepre-determined threshold, Measurement comparison logic 420 transmits amessage indicating that a uniformity compensated halftone has beenachieved (e.g., the OD variations are less than the pre-determinedthreshold). In one embodiment, the message may comprise the uniformitycompensated halftone, including threshold values associated with each ofthe pel forming elements 165. Upon a determination that the variationsare greater than the pre-determined threshold, nozzle measurementgeneration logic 430 generates measurement data associated with each ofthe pel forming elements 165 (e.g., nozzle measurement data). In thisembodiment, the nozzle measurement data comprises an interpolation ofthe measured OD data. In another embodiment, upon a determination thatthe OD variations are greater than the pre-determined threshold,Measurement comparison logic 420 transmits a message indicating that auniformity compensated halftone has not been achieved (e.g., the ODvariations are greater than the pre-determined threshold). PrintingSystem 130 or Print Controller 140 may initiate the generation andprinting of a revised calibration step chart upon receiving the message.

Transfer function generation engine 440 generates a transfer functionand/or an inverse transfer function (ITF) for each of the pel formingelements 165 based on the measured OD data and a received uniformitycompensation target function. In one embodiment, a transfer functioncomprises a mapping of an input digital count to an output digital countfor a system, where digital count is the gray level or color valuerepresenting the pels in a bitmap 150 (FIG. 1). Transfer functions maybe received or generated (e.g., generated based on target OD versusinput digital count data and measured OD versus output digital countdata).

An inverse transfer function is the reversed (e.g., inverted)application of the transfer function, where the output digital countvalues of the transfer function form the input digital count values ofthe inverse transfer function and the input digital count values of thetransfer function form the output digital count values of the inversetransfer function.

FIG. 5 illustrates one embodiment of a transfer function of a nozzleformed by the set of (c, g) tuples for all digital count levels. Asshown in FIG. 5, the inverse transfer function of a pel forming element(e.g., nozzle) is represented as U_(k)(g)=c=TF_(k) ⁻¹(g). Alternately,the inverse transfer functions for all nozzle locations k can becomputed directly using T⁻¹(M_(k)(g)). Target OD response T(c) 223 isused as a uniformity objective for all nozzles for a current halftone.The measured response for nozzle position k is given by M_(k)(g). Themeasured response is determined by printing a single color. The targetis the desired response for the color (e.g., primary color). Where{h_(kl)}_(i) is the three-dimensional Threshold Array for ith iteration,column location k and drop size level 1. The Threshold Array includesthreshold for all drop sizes. Thresholds for column k are used in thehalftoning process to print using nozzle k. Therefore, there is aone-to-one correspondence between nozzles from the ink jet array tocolumns of the threshold array, assuming the uniformity compensationthreshold array is the same width as the printhead nozzle array. Therows of the threshold array are not included for simplicity. The curlybrackets are used to indicate sets of threshold values. It should beunderstood that the entire threshold array is three dimensional, withrows in the web movement direction, columns corresponding to each nozzleand planes corresponding to each nonzero drop size. Further, it shouldbe understood that a different threshold array h_(kl.) exists for eachprimary color. Separate indices for each one of the different colors areomitted for simplicity.

In one embodiment, the same color target is used for all nozzles toachieve uniform printing. U_(k) represents the inverse transfer functionfor nozzle k, which maps color value g to color value c in FIG. 5. U_(k)may be determined as shown in FIG. 5 by following the dotted line pathin the opposite direction of the indicated arrows. In one embodiment,the color values are the Digital Count (DC) levels, which are 0 to 255,for a typical 8-bit printing system. Threshold values, represented bytheir g values, are transformed to new threshold values for all nozzlesk using the inverse transfer functions derived for nozzle k; where thetarget remains the same for each nozzle k and the measured responsechanges for each nozzle k.

In such an embodiment, the inverse transfer function of a color value gis the color value c, whose target value T(c) is the measured valueM_(k)(g) that results when the color value g is printed. T(c) may be setthe same for all nozzles to provide uniformity between all nozzles. Thevalue M_(k)(g) is the measured OD at the cross print medium (e.g., web)location corresponding to nozzle k and the current halftone (e.g.,threshold array). U_(k) may be computed directly, rather than byinverting a TF, starting from M_(k)(g), and then finding T⁻¹(M_(k)(g)).The inverse of the target function T⁻¹ may be found by tabulating thetarget function in two columns having all c and g values, andsubsequently swapping the columns. The measured response M_(k)(g) atnozzle location k may be measured with the entire Threshold Arrayemployed for printing, so as to include contributions from adjacentcompensated nozzles. Employing scanned image data, the data isinterpolated to obtain the measured response for the nozzle at locationk.

As shown in FIG. 5, the Transfer Function TF(c)=g. In one embodiment,the transfer function of color value c is a color value g that, whencolor value g is printed by the print system, causes the target opticaldensity at color value c to be obtained as the measured value. TF_(k)(c)may be determined as shown in FIG. 5 by following the dotted line pathin the direction of the indicated arrows. This is because c and g bothhave the same Optical Density OD₁ associated with them. Color coccurring in the target domain and color g in the measured domainsystems.

The TF(c) may be derived from T(c) and M_(k)(g) by tabulating thematching color pairs for optical densities as explained here for colorsc and g. U_(k) may then be determined by inverting TF_(k). Alternatelythe target and measured functions can be treated as continuous functionswith the transfer function TF_(k)(c) and TF_(k) ⁻¹(g) derived from thecontinuous function relationships, previously provided. The target valueT(c) 223 and measured response value M_(k)(g) may correspond to the samecolor as the color of nozzle k (e.g., one of a plurality of primarycolors). As will be explained below, the target value T(c) 223 andmeasured response value M_(k)(g) may alternatively correspond to asecondary or tertiary color (e.g., a combination of primary colors) thatincludes the color contribution of the nozzle k (e.g., one of aplurality of primary colors). The methods of calculating TF_(k)(c) andTF_(k) ⁻¹(g) apply in either case.

Once the inverse transfer functions have been generated, compensationupdate engine 450 generates an updated uniformity compensated halftoneby modifying all the thresholds in each column of the threshold array ofthe current halftone using the generated inverse transfer function foreach respective nozzle. In one embodiment, the inverse transfer functionfor each column (or nozzle) (k) is used at each iteration to transformthe current threshold values {h_(kl)}_(i-1) of the compensated halftonefrom the previous iteration. This creates threshold values for thecompensated halftone, {h_(kl)}_(i). This process generates thresholds inthe compensated threshold array, based on the corresponding thresholdsfrom the current threshold array.

According to one embodiment, each threshold of the compensated thresholdarray is determined by using the transformation defined by thecorresponding ITF applied to each threshold for all corresponding pelsand drop sizes. If the ITF is assumed to be a continuous function,threshold values after transformation may be rounded to integerthreshold values. The domain of threshold values in the Threshold Arrayscreated for printing must match the bit depth of image data in theimaging path.

Creating uniformity compensated halftones are preferably generated at ahigher bitdepth, which is greater than the bitdepth for the imagingpath. In the case where the halftone bitdepth is higher than thebitdepth of the imaging path, downsampling the halftones or bit shiftingthe image data to match the halftone thresholds is required to obtainthe same bitdepths between the halftone and imaging path. Thedownsampling process should preserve the patterns in the higher bitdepthhalftone instead of creating new thresholds by bit truncation of theleast significant bits of the halftone thresholds.

For example, each drop size (l) of a multi-level halftone has acorresponding set of thresholds, where level l=0 represents the patternof small drops, assuming a halftone having for example small, medium,and large drops. Such a halftone has three levels {0,1,2}. A set ofthresholds is not required for the none drop case since, this islogically related to the small thresholds. In a web wide halftone, eachnozzle/column k of a print head has a set of halftone thresholds foreach level l of the multilevel halftone, {h_(k,l)}. After iteration (i)the uniformity compensated halftone threshold array is:{h_(k,l)}_(i)=U_(k,i)(U_(k,i-1)( . . . U_(k,1)({h_(kl)}₀) . . . )),where U_(k,i) is the inverse transfer function for nozzle k at iterationi. The uncalibrated initial halftone threshold array is given by{h_(kl)}₀. This results in convergence towards uniform response in thehalftoned image.

In an alternative embodiment, transfer functions may be implemented toapply directly to image data. In this case the uncalibrated halftone isnot modified. Instead, the image data is transformed prior tohalftoning. In this embodiment, transfer function generation engine 440generates a transfer function for each nozzle, rather than inversetransfer functions, while compensation update engine 450 modifies thetransfer function for each nozzle, by applying the current transferfunction to it, to generate the current cumulative transfer function.Where the cumulative transfer function is obtained by cascading transferfunctions from each iteration. It is important to distinguish betweenthe cumulative transfer function determined in this way:TFC_(i)(c)=TF_(i)(TF_(i-1)( . . . TF₁(c) . . . ))

from the current transfer function at iteration i, TF_(i)(c). Thecumulative transfer function is, in other words, the cascadedcomposition of transfer functions determined by measurements at eachiteration, i. Additionally, this embodiment includes step chartgenerator 410 generating a calibration step chart using the halftone(e.g., threshold array) and/or transfer function. In the case oftransfer functions, they are applied to modify the image data whenprinting.

In one embodiment, the uncalibrated halftone is employed for printing inthis embodiment and only the cumulative transfer function is recomputedto obtain the current cumulative transfer function after iteration i.Assuming the cumulative transfer function is TFC_(k,i) for nozzle kafter iteration i, the current cumulative transfer function for allnozzles isTFC_(k,i)=TF_(k,i)(TF_(k,i-1)( . . . (TF_(k,i)) . . . )),

where TF_(k,i) is the transfer function for nozzle k, as measured afteriteration i. An initial transfer function TF_(k,0) is used, whichtypically is the identity transfer function. In another embodiment aninitial transfer function derived based on engine calibration might beused. This results in convergence towards uniform response in theuniformity compensated image, employing cascaded transfer functionsinstead of uniformity compensated halftones.

FIG. 6 is a flow diagram illustrating one embodiment of a process 600for performing uniformity compensation. Process 600 may be performed byprocessing logic that may include hardware (e.g., circuitry, dedicatedlogic, programmable logic, microcode, etc.), software such asinstructions run on a processing device, or a combination thereof. Inone embodiment, process 600 is performed by calibration module 216.

At processing block 610, a halftone is received. In the first iterationof the process, the halftone is an uncalibrated halftone. At processingblock 620, a uniformity calibration step chart is generated. OD values,when uniformity compensated, will ideally be the same for all nozzlelocations k for a single tint level in the chart. This chart may havecross web stripes having the same tint level, ranging from zero to 100%in multiple steps. At processing block 630, the uniformity calibrationchart is printed and print image measurement data from measuring thechart, including the OD measurement data, is received. At decision block640, a determination is made as to whether OD variations are less thanor equal to the predetermined threshold. If so, a message is transmittedindicating that a uniformity compensated halftone has been achieved,processing block 680. As discussed above, the message may includeuniformity compensated halftone values. In some embodiments, a messagemay also be transmitted indicating that the variations are greater thanthe pre-determined value (e.g., indicating that another iteration is tobe performed).

At processing block 650, nozzle measurement data is generated upon adetermination that the OD variations are greater than the predeterminedthreshold. As discussed above, the nozzle measurement data may begenerated by interpolating the OD measurement data. At processing block660, inverse transfer functions are generated for each nozzle to achievethe target OD response for each nozzle.

At processing block 670, a uniformity compensated halftone is generatedby modifying the thresholds in each column of the threshold array usingthe inverse transfer function for each nozzle. By performing these stepson a per nozzle basis, improved uniformity compensation (e.g., moreaccurate, faster, less operator burden, etc.) over conventional methodsmay be achieved. In one embodiment, a uniformity compensated halftone isgenerated for each drop size of the halftone design, which produces thecurrent threshold array which is employed for printing or printing theuniformity calibration step chart. In another embodiment, at processingblock 670, the uniformity compensated halftone for each of the pelforming elements is transmitted. In yet another embodiment, atprocessing block 670 a message is transmitted indicating that theuniformity compensated halftone has not been achieved (e.g., requestrevised print image measurement data corresponding to printing a reviseduniformity calibration step chart with the revised uniformitycompensated halftones).

Subsequently, control is returned to processing block 610, where theuniformity compensated halftone is received as an updated halftone. Thisloop is repeated for as many iterations that are needed to satisfy thecondition of decision block 640. When a threshold array is generatedwhich satisfies the OD variation criteria it may be used for allsubsequent printing. The uniformity compensated threshold arrays may besaved with the current conditions, such as the paper type. Subsequentprinting, using the same paper type, may employ the saved uniformitycompensated threshold array.

FIG. 7 is a flow diagram illustrating another process 700 for performinguniformity compensation. In this process transfer functions for eachnozzle based on a cascaded process are employed. Process 700 may beperformed by processing logic that may include hardware (e.g.,circuitry, dedicated logic, programmable logic, microcode, etc.),software such as instructions run on a processing device, or acombination thereof. In one embodiment, process 700 is performed bycalibration module 216.

At processing block 710, transfer functions for the nozzles arereceived. At processing block 720, a uniformity calibration step chartis generated. At processing block 730, the uniformity calibration chartis printed employing the current set of uniformity transfer functionsfor each nozzle, and print image measurement data from measuring thechart, including the OD measurement data, is received. During the firstiteration of this process, prior to the determination of the first setof uniformity transfer functions, the transfer function for each nozzleis set to identity where output levels equal the input levels. Atdecision block 740, a determination is made as to whether OD variationsare less than or equal to the predetermined threshold. If so, a messageis transmitted indicating that a uniformity compensated set of transferfunctions has been obtained, processing block 780.

Nozzle measurement data is generated upon a determination that the ODvariations are greater than the predetermined threshold, processingblock 750. At processing block 760, transfer functions are generated foreach nozzle. At processing block 770, a refined set of cumulativetransfer functions (cascaded transfer functions) are generated bymodifying the previous transfer function sets for all nozzles. Inanother embodiment, the refined set of cumulative transfer functions aretransmitted. Subsequently, control is returned to processing block 710,where the process is repeated. Once a refined set of cumulative transferfunctions has been generated that satisfies the OD variation criteria,the cumulative transfer functions may be used for all subsequentprinting. The uniformity compensated set of cumulative transferfunctions may be saved with the current conditions, such as the papertype. Subsequent printing, using the same paper type, may utilize thesaved sets of refined cumulative transfer functions.

Note that the cascaded refined cumulative transfer function approachdescribed may be employed in printing systems that do not have pointoperation halftoning, using threshold arrays. The described uniformitysystem, employing a refined set of cascaded transfer functions, can beemployed in printers having neighborhood halftoning implemented, such aserror diffusion. In this case when using neighborhood operationhalftoning, the halftoning function is replaced with an algorithmicapproach instead of using a point operation halftone method.

Secondary Color Uniformity Compensation

Calibration module 216 is implemented to perform the above-describediterative uniformity compensation processes for each primary ink color(e.g., CMYK) to minimize residual non-conformity arising from nozzleinteractions and print head misalignments. However, overlapping inks ofdifferent colors forming secondary color areas produce furtherinteractions that that need to be corrected. In fact, print system usersmay be more concerned with secondary color uniformity than primary coloruniformity.

According to one embodiment, calibration module 216 may also performuniformity compensation for secondary colors (e.g., Red, Green and Blue(RGB) colors). In such an embodiment, uniformity compensation isperformed for each secondary color, which is comprised of two colorsblended according to a prescribed pair of primary color values at eachtint. As used herein, a color is defined as a unique combination ofprimary ink tints, while a tint is defined as an areal density of aprimary ink.

In a further embodiment, the above-described iterative uniformitycompensation process is implemented such that print image measurementdata derived from step charts associated with each secondary color areemployed to obtain uniformity compensation for the primary colorscorresponding to the secondary colors. For example, uniformitycompensation is performed for a first secondary color (e.g., red) basedon measurements derived from a red step chart using an equal mixture offirst and second primary colors (e.g., yellow and magenta).

Subsequently, uniformity compensation is performed for a secondsecondary color (e.g., green) based on measurements derived from a greenstep chart using an equal mixture of first and a third primary colors(e.g., yellow and cyan). Further, uniformity compensation is performedfor a third secondary color (e.g., blue) based on measurements derivedfrom a blue step chart using an equal mixture of the second and thirdprimary colors (e.g., magenta and cyan). This process is repeated untila convergence occurs (e.g., OD variations for each secondary color areless than or equal to a predetermined uniformity specificationthreshold), as will be discussed in further detail below.

In further embodiments, secondary color uniformity compensation may beperformed using uniformity compensation data (e.g., uniformitycompensated halftones or transfer functions) received for the primarycolors generated via the iterative uniformity compensation processdiscussed above with reference to FIGS. 6 and 7. In such embodiments,the primary color uniformity compensation data may be retrieved (e.g.,from storage). However in other embodiments, secondary color uniformitycompensation may be performed without the uniformity compensated primarycolors.

In one embodiment, calibration module 216 performs uniformitycompensation of secondary colors using halftone designs (or halftones).As discussed above, a uniformity compensated halftone is generated byapplying an inverse transfer function corresponding to the pel formingelement to a halftone associated with the pel forming element. In afurther embodiment, performing uniformity compensation of secondarycolors comprises generating uniformity compensated halftones for theprimary colors from which the secondary colors (e.g., red, green andblue) are comprised based on inverse transforms corresponding to therespective secondary colors.

For example, uniformity compensation is performed for the color red togenerate a uniformity compensated halftone for each pel forming elementassociated with the primary color yellow, and generate a uniformitycompensated halftone for each pel forming element associated with theprimary color magenta, based on an inverse transfer functioncorresponding to the color red.

Uniformity compensation is performed for the color green by generatingan updated uniformity compensated halftone for each pel forming elementassociated with the primary color yellow and generating a uniformitycompensated halftone for each pel forming element associated with theprimary color cyan based on an inverse transfer function correspondingto the color green. In one embodiment, the updated compensated halftonefor the color yellow is generated by modifying the yellow compensatedhalftone generated for the color red using the yellow compensatedhalftone generated for the color green.

Further, uniformity compensation is performed for the color blue bygenerating an updated compensated halftone design for each pel formingassociated with the primary color cyan and generating an updateduniformity compensated halftone design for each pel forming associatedwith the primary color magenta based on an inverse transfer functioncorresponding to the color blue. In one embodiment, the updatedcompensated halftone for the color cyan is generated by modifying thecyan compensated halftone generated for the color green using the cyancompensated halftone generated for the color blue, while the updatedcompensated halftone for the color magenta is generated by modifying themagenta compensated halftone generated for the color red using themagenta compensated halftone generated for the color blue.

Although described herein with reference to CMYK, other embodiments mayperform secondary color uniformity compensation for different colorschemes, such as the Extended Color Gamut CMYKOGV and hexachrome CMYKOG.

Once the updated halftone designs for the primary colors have beengenerated, a determination is made as to whether measurement variations(e.g., OD variations) for each secondary color is less than apredetermined uniformity specification threshold. In one embodiment,calibration module 216 transmits the uniformity compensated halftonesupon a determination that the variation in optical density data for pelforming elements associated with each of the plurality of secondarycolors is less than or equal to the predetermined threshold. Otherwise,a subsequent pass of uniformity compensation of secondary colors isperformed.

In one embodiment, calibration module 216 generates updated uniformitycompensated halftones for the yellow, magenta and cyan primary colors inthe subsequent pass using the uniformity compensated halftones generatedin the previous pass. In this embodiment, calibration module 216 repeatsthe process for subsequent passes until a determination that the ODvariations are less than or equal to the predetermined threshold.

FIG. 8 is a flow diagram illustrating another process 800 for performinguniformity compensation for secondary colors. Process 800 may beperformed by processing logic that may include hardware (e.g.,circuitry, dedicated logic, programmable logic, microcode, etc.),software such as instructions run on a processing device, or acombination thereof. In one embodiment, process 800 is performed bycalibration module 216.

At processing block 810, uniformity compensated halftones are receivedfor each primary color. At processing block 820, uniformity compensationis performed for a first secondary color (e.g., red) by generatingcompensated halftones for each pel forming element associated with afirst primary color (e.g., yellow) and a second primary color (e.g.,magenta) based on an inverse transfer function corresponding to thefirst secondary color.

At processing block 830, uniformity compensation is performed for asecond secondary color (e.g., green) by generating an updatedcompensated halftone for each pel forming element associated with thefirst primary color and generating a compensated halftone for each pelforming element associated with a third primary color (e.g., cyan) basedon an inverse transfer function corresponding to the second secondarycolor. The compensated first primary color halftone generated from block820 is used in this generation process for the second secondary colorcompensation.

At processing block 840, uniformity compensation is performed for athird secondary color (e.g., blue) by generating updated compensatedhalftones for each pel forming element associated with the secondprimary color and the third primary color based on an inverse transferfunction corresponding to the third secondary color. The compensatedthird primary color halftone generated from processing block 830 is usedin this generation process for the third secondary color compensation.

According to one embodiment, processing blocks 820-840 are eachperformed according to a process like discussed above with reference toFIG. 6. The print image measurement data, threshold data and target datain this case are for the secondary colors for which the compensation isbeing done. This will generate two compensated halftones (e.g., onecompensated halftone for each of the corresponding primary colors).

At decision block 850, a determination is made as to whether ODvariations associated with the secondary color (e.g., received in printimage measurement data 222, as shown in FIG. 6) is less than or equal tothe predetermined threshold. If so, the updated uniformity compensatedhalftones are transmitted, processing block 860. However, control isreturned to processing block 820, where the process is repeated usingthe updated uniformity compensated halftones upon a determination thatthe secondary color OD variations are greater than the predeterminedthreshold. As discussed above, some embodiments may be performed withoutreceiving uniformity compensated halftones associated with the primarycolors. In such embodiments, processing block 810 may be omitted,instead uncalibrated halftones for the first, second and third primarycolors are employed in the process.

In an alternative embodiment, calibration module 216 performs uniformitycompensation of secondary colors using transfer functions. In thisembodiment, transfer functions are generated for the primary colors fromwhich the secondary colors are comprised. For instance, uniformitycompensation is performed for the color red by generating transferfunctions for each pel forming element associated with the primary coloryellow and each pel forming element associated with the primary colormagenta.

Uniformity compensation is subsequently performed for the color green bygenerating an updated uniformity transfer function for each pel formingelement associated with the primary color yellow and generating atransfer function for each pel forming element associated with theprimary color cyan. In one embodiment, updated uniformity transferfunctions are generated by modifying (or combining) transfer functionsvia a cascading process, where the output of one transfer function formsthe input of a second cascaded function. Thus, the updated transferfunction for the first primary color is generated by using the output ofthe yellow transfer function generated for the color red as the input tothe yellow transfer function generated for the color green.

Additionally, uniformity compensation is performed for the color blue bygenerating updated transfer functions for each pel forming associatedwith the primary color cyan and each pel forming associated with theprimary color magenta. In one embodiment, the updated transfer functionfor the second primary color is generated by modifying the cyan transferfunction generated for the color green using the cyan transfer functiongenerated for the color blue, while the updated transfer function forthe third primary color is generated by modifying the magenta transferfunction generated for the color red using the magenta transfer functiongenerated for the color blue. In this embodiment, calibration module 216also repeats the process for subsequent passes until a determinationthat the secondary color OD variations are less than or equal to thepredetermined threshold.

FIG. 9 is a flow diagram illustrating another process 900 for performinguniformity compensation for secondary colors. Process 900 may beperformed by processing logic that may include hardware (e.g.,circuitry, dedicated logic, programmable logic, microcode, etc.),software such as instructions run on a processing device, or acombination thereof. In one embodiment, process 900 is performed bycalibration module 216.

At processing block 910, uniformity compensated transfer functions arereceived for each primary color. At processing block 920, uniformitycompensation is performed for a first secondary color (e.g., red) bygenerating transfer functions for each pel forming element associatedwith a first primary color (e.g., yellow) and a second primary color(e.g., magenta). At processing block 930, uniformity compensation isperformed for a second secondary color (e.g., green) by generating anupdated compensated transfer function for each pel forming elementassociated with the first primary color and generating a compensatedtransfer function for each pel forming element associated with a thirdprimary color (e.g., cyan).

At processing block 940, uniformity compensation is performed for athird secondary color (e.g., blue) by generating updated compensatedtransfer functions for each pel forming element associated with thesecond primary color and the third primary color. In one embodiment,processing blocks 920-940 are each performed according to a processsimilar to discussed above with reference to FIG. 7. The print imagemeasurement data, threshold data and target data in this case are forthe secondary colors for which the compensation is being done.

At decision block 950, a determination is made as to whether thesecondary color OD variations are less than or equal to thepredetermined threshold. If so, the updated transfer functions aretransmitted, processing block 960. If not, control is returned toprocessing block 920, where the process is repeated using the updateduniformity compensated transfer functions. At processing bock 910 a setof identity transfer functions, having output values equal to inputvalues, may be used for the initial set of transfer functions. In afurther embodiment, engine calibration transfer functions for eachprimary color may be employed. In this embodiment a set of uniformitycompensated transfer functions, which includes engine calibration, willbe obtained. According to one embodiment, uniformity compensation mayalso be performed for tertiary colors, such as CMY neutral. In such anembodiment, uniformity compensation of neutral colors (e.g., grayscaleplus 7 (G7)) is performed using a mixture of cyan, magenta and yellow.In a further embodiment, the OD measurement data is analyzed bycalibration module 216 to determine the uniformity of the G7 mixture.Based on the mixture uniformity, a transfer function or halftone designis generated for pel forming elements associated with cyan, magenta andyellow. This process is repeated until OD variations are less than thepredetermined threshold.

FIG. 10 is a flow diagram illustrating a process 1000 for performinguniformity compensation for tertiary colors. Process 1000 may beperformed by processing logic that may include hardware (e.g.,circuitry, dedicated logic, programmable logic, microcode, etc.),software such as instructions run on a processing device, or acombination thereof. In one embodiment, process 1000 is performed bycalibration module 216.

At processing block 1010, print image measurement data (e.g., image ofthe test print) of a CMY mixture (e.g., tertiary color) is received. Atprocessing block 1020, the OD measurement data included in the printimage measurement data is used to determine the uniformity of the CMYmixture (e.g., color combination). At processing block 1030, the ODmeasurement data is used to perform uniformity compensation of the CMYmixture by generating uniformity compensated halftones for each pelforming element associated with the color cyan, the color magenta andyellow based on an inverse transfer function corresponding to the CMYmixture.

At decision block 1040, a determination is made as to whether ODvariations for printed combination of cyan, magenta and yellow colorsare less than or equal to the predetermined threshold. If so, theupdated uniformity compensated halftones are transmitted, processingblock 1050. Otherwise, if the OD variation for the printed CMY mixture(e.g., tertiary color combination) is not achieved, a test print imageis printed using the uniformity compensated halftones and control isreturned to processing block 1010, where the process is repeated uponreceiving the subsequent print image measurement data of the CMY mixturetest image (e.g., step chart). The print image measurement data,threshold data and target data in this case are for the tertiary colorsfor which the compensation is being done. The uniformity compensationfor CMY may be done in combination with the compensation for secondarycolors.

FIG. 11 is a flow diagram illustrating another process 1100 forperforming uniformity compensation for tertiary colors. Process 1100 maybe performed by processing logic that may include hardware (e.g.,circuitry, dedicated logic, programmable logic, microcode, etc.),software such as instructions run on a processing device, or acombination thereof. In one embodiment, process 1100 is performed bycalibration module 216.

At processing block 1110, measurement data (e.g., measurement of thetest print) of a CMY mixture (e.g., a tertiary color) is received. Atprocessing block 1120, the OD measurement data is used to determine theuniformity of the CMY mixture (e.g., the color combination). Atprocessing block 1130, the OD measurement data is used to performuniformity compensation of the CMY mixture by generating transfercompensation for each pel forming element associated with the colorcyan, the color magenta and the color yellow.

At decision block 1140, a determination is made as to whether ODvariations for the CMY color are less than or equal to the predeterminedthreshold. If so, the updated uniformity compensated transfer functionsare transmitted, processing block 1150. Otherwise, a test print image isprinted using the transfer functions and control is returned toprocessing block 1110, where the process is repeated upon receiving thesubsequent print image measurement data.

For the initial measurement data for the CMY color a set of previouslyoptimized transfer functions, set of identity transfer functions orengine calibration transfer functions for each primary color may beused. The print image measurement data, threshold data and target datain this case are for the tertiary colors for which the compensation isbeing done. Although described above with reference to OD measurement,calibration may be performed using perceptual lightness perceptuallightness (L*) implemented in the CIELAB color space (L*a*b*). In suchembodiments, uniformity compensation is performed for secondary colorsusing L* as a target.

FIG. 12 is a flow diagram illustrating one embodiment of a process 1200for performing uniformity compensation for secondary colors using L* asa target. Process 1200 may be performed by processing logic that mayinclude hardware (e.g., circuitry, dedicated logic, programmable logic,microcode, etc.), software such as instructions run on a processingdevice, or a combination thereof. In one embodiment, process 1200 isperformed by calibration module 216.

At processing block 1210, uniformity compensation is performed for afirst secondary color (e.g., red) using an equal mixture of yellow andmagenta to generate a transfer function for the first secondary colorusing L* for the color as a target. At processing block 1220, uniformitycompensation halftones for each pel forming element associated with afirst primary color (e.g., yellow) and a second primary color (e.g.,magenta) are generated based on an inverse transfer functioncorresponding to the generated red transfer function.

At processing block 1230, uniformity compensation is performed for asecond secondary color (e.g., green) using an equal mixture of yellowand cyan to generate a transfer function for the second secondary colorusing L* for the color as a target. At processing block 1240, an updateduniformity compensation halftone is generated for each pel formingelement associated with the first primary color, while a uniformitycompensation halftone is generated for each pel forming elementassociated with a third primary color (e.g., cyan) based on an inversetransfer function corresponding to the generated green transferfunction.

At processing block 1250, uniformity compensation is performed for athird secondary color (e.g., blue) using an equal mixture of cyan andmagenta to generate a transfer function for the third secondary colorusing L* for the color as a target (e.g., Linear L* vs gray level). Atprocessing block 1260, updated uniformity compensation halftones aregenerated for each pel forming element associated with the secondprimary color, and each pel forming element associated with the thirdprimary color, based on an inverse transfer function corresponding tothe generated blue transfer function. As discussed above, the updateduniformity compensation halftones are generated by modifying auniformity compensation halftone using a uniformity compensationhalftone previously generated for a respective primary color.

In this embodiment, the received print image measurement data includesL* measurement data. Thus, at decision block 1270, a determination ismade as to whether variations based on Delta E (e.g., Delta E 1976 orDelta E 2000) for each secondary color is less than or equal to thepredetermined threshold. If so, the updated uniformity compensatedhalftones are transmitted, processing block 1280. However, control isreturned to processing block 1210, where the process is repeated usingthe updated uniformity compensated halftones upon a determination thatthe Delta E variations are greater than the predetermined threshold. Asdescribed previously, the starting point for the process usesuncalibrated halftones or previously calibrated halftones. The printimage measurement data, threshold data and target data in this case arefor the secondary colors for which the compensation is being done.

FIG. 13 is a flow diagram illustrating another process 1300 forperforming uniformity compensation for secondary colors using L* as atarget. Process 1300 may be performed by processing logic that mayinclude hardware (e.g., circuitry, dedicated logic, programmable logic,microcode, etc.), software such as instructions run on a processingdevice, or a combination thereof. In one embodiment, process 1300 isperformed by transfer function calibration module 216.

At processing block 1310, uniformity compensation is performed for afirst secondary color (e.g., red) using an equal mixture of yellow andmagenta to generate a transfer function for the first secondary colorusing L* for the color as a target. At processing block 1320, transferfunctions for each pel forming element associated with a first primarycolor (e.g., yellow) and a second primary color (e.g., magenta) aregenerated based on the generated red transfer function.

At processing block 1330, uniformity compensation is performed for asecond secondary color (e.g., green) using an equal mixture of yellowand cyan to generate a transfer function for the second secondary colorusing L* for the color as a target (e.g., Linear L* vs gray level). Atprocessing block 1340, an updated transfer function is generated foreach pel forming element associated with the first primary color, whilea transfer function is generated for each pel forming element associatedwith a third primary color (e.g., cyan) based on the generated greentransfer function.

At processing block 1350, uniformity compensation is performed for athird secondary color (e.g., blue) using an equal mixture of cyan andmagenta to generate a transfer function for the third secondary colorusing L* for the color as a target. At processing block 1360, updatedtransfer functions are generated for each pel forming element associatedwith the second primary color, and each pel forming element associatedwith the third primary color, based on the generated blue transferfunction. As discussed above, the updated transfer functions aregenerated by modifying a transfer function using a uniformitycompensation transfer function previously generated for a respectiveprimary color.

At processing block 1370, a determination is made as to whether delta Evariations for each secondary color is less than or equal to thepredetermined threshold. If so, the updated transfer functions aretransmitted, processing block 1380. Otherwise, control is returned toprocessing block 1310, where the process is repeated using the updatedtransfer functions. The print image measurement data, threshold data andtarget data in this case are for the secondary colors for which thecompensation is being done. As described previously, the starting pointfor the process uses uncalibrated halftones and identity or enginecalibration transfer functions.

Although shown as a component of print controller 140, other embodimentsmay feature calibration module 216 included within an independentdevice, or combination of devices, communicably coupled to printcontroller 140. For instance, FIG. 14 illustrates one embodiment of acalibration module 216 implemented in a network 1400. As shown in FIG.14, calibration module 216 is included within a computing system 1410and transmits calibrated halftones and/or transfer functions to printingsystem 130 via a cloud network 1450. Printing system 130 receivescalibrated halftones and/or transfer functions.

FIG. 15 illustrates a computer system 1500 on which printing system 130and/or calibration module 216 may be implemented. Computer system 1500includes a system bus 1520 for communicating information, and aprocessor 1510 coupled to bus 1520 for processing information.

Computer system 1500 further comprises a random access memory (RAM) orother dynamic storage device 1525 (referred to herein as main memory),coupled to bus 1520 for storing information and instructions to beexecuted by processor 1510. Main memory 1525 also may be used forstoring temporary variables or other intermediate information duringexecution of instructions by processor 1510. Computer system 1500 alsomay include a read only memory (ROM) and or other static storage device1526 coupled to bus 1520 for storing static information and instructionsused by processor 1510.

A data storage device 1527 such as a magnetic disk or optical disc andits corresponding drive may also be coupled to computer system 1500 forstoring information and instructions. Computer system 1500 can also becoupled to a second I/O bus 1550 via an I/O interface 1530. A pluralityof I/O devices may be coupled to I/O bus 1550, including a displaydevice 1524, an input device (e.g., an alphanumeric input device 1523and or a cursor control device 1522). The communication device 1521 isfor accessing other computers (servers or clients). The communicationdevice 1521 may comprise a modem, a network interface card, or otherwell-known interface device, such as those used for coupling toEthernet, token ring, or other types of networks.

Embodiments of the invention may include various steps as set forthabove. The steps may be embodied in machine-executable instructions. Theinstructions can be used to cause a general-purpose or special-purposeprocessor to perform certain steps. Alternatively, these steps may beperformed by specific hardware components that contain hardwired logicfor performing the steps, or by any combination of programmed computercomponents and custom hardware components.

Elements of the present invention may also be provided as amachine-readable medium for storing the machine-executable instructions.The machine-readable medium may include, but is not limited to, floppydiskettes, optical disks, CD-ROMs, and magneto-optical disks, ROMs,RAMs, EPROMs, EEPROMs, magnetic or optical cards, propagation media orother type of media/machine-readable medium suitable for storingelectronic instructions. For example, the present invention may bedownloaded as a computer program which may be transferred from a remotecomputer (e.g., a server) to a requesting computer (e.g., a client) byway of data signals embodied in a carrier wave or other propagationmedium via a communication link (e.g., a modem or network connection).

The following clauses and/or examples pertain to further embodiments orexamples. Specifics in the examples may be used anywhere in one or moreembodiments. The various features of the different embodiments orexamples may be variously combined with some features included andothers excluded to suit a variety of different applications. Examplesmay include subject matter such as a method, means for performing actsof the method, at least one machine-readable medium includinginstructions that, when performed by a machine cause the machine toperform acts of the method, or of an apparatus or system according toembodiments and examples described herein.

Some embodiments pertain to Example 1 that includes a system comprisingat least one physical memory device to store calibration logic; and oneor more processors coupled with the at least one physical memory deviceto execute the calibration logic to perform uniformity compensation of aplurality of secondary colors printed by pel forming elements, each ofthe pel forming elements associated with one of a plurality of primarycolors, including generating a uniformity compensated first primarycolor transfer function for each of the pel forming elements associatedwith a first primary color and a uniformity compensated second colortransfer function for each of the pel forming elements associated with asecond primary color, generating an updated uniformity compensated firstprimary color transfer function for each of the pel forming elementsassociated with the first primary color and a uniformity compensatedthird primary color transfer function for each of the pel formingelements associated with a third primary color and generating an updateduniformity compensated second primary color transfer function for eachof the pel forming elements associated with the second primary color andan updated uniformity compensated third primary color transfer functionfor each of the pel forming elements associated with a third primarycolor.

Example 2 includes the subject matter of Example 1, wherein thecalibration logic receives print image measurement data corresponding tosecondary color markings printed by the pel forming elements.

Example 3 includes the subject matter of Examples 1 and 2, wherein theprint image measurement data comprises optical density data associatedwith each of the plurality of secondary colors.

Example 4 includes the subject matter of Examples 1-3, wherein thecalibration logic further determines whether variations in opticaldensity data are greater than a predetermined threshold and generatessecond pass updated uniformity compensated transfer functions for thefirst, second and third primary colors upon a determination that thevariation in optical density data for the secondary colors is greaterthan the predetermined threshold.

Example 5 includes the subject matter of Examples 1-4, wherein thecalibration logic further generates a uniformity compensated transferfunction for a tertiary color based on the first, second and thirdtransfer functions.

Example 6 includes the subject matter of Examples 1-5, wherein thecalibration logic further transmits the updated uniformity compensatedtransfer functions.

Example 7 includes the subject matter of Examples 1-6, furthercomprising a print engine to receive the uniformity compensated transferfunctions.

Example 8 includes the subject matter of Examples 1-7, wherein the printimage measurement data comprises color space lightness data associatedwith each of the plurality of secondary colors.

Some embodiments pertain to Example 9 that includes a method comprisingperforming uniformity compensation of a plurality of secondary colorsprinted by pel forming elements, each of the pel forming elementsassociated with one of a plurality of primary colors, includinggenerating a uniformity compensated first primary color transferfunction for each of the pel forming elements associated with a firstprimary color and a uniformity compensated second color transferfunction for each of the pel forming elements associated with a secondprimary color, generating an updated uniformity compensated firstprimary color transfer function for each of the pel forming elementsassociated with the first primary color and a uniformity compensatedthird primary color transfer function for each of the pel formingelements associated with a third primary color and generating an updateduniformity compensated second primary color transfer function for eachof the pel forming elements associated with the second primary color andan updated uniformity compensated third primary color transfer functionfor each of the pel forming elements associated with a third primarycolor

Example 10 includes the subject matter of Example 9, further comprisingreceiving print image measurement data corresponding to secondary colormarkings printed by the pel forming elements.

Example 11 includes the subject matter of Examples 9 and 11, wherein theprint image measurement data comprises optical density data associatedwith each of the plurality of secondary colors.

Example 12 includes the subject matter of Examples 9-11, furthercomprising determining whether variations in optical density data aregreater than a predetermined threshold and generating second passupdated uniformity compensated transfer functions for the first, secondand third primary colors upon a determination that the variation inoptical density data for the secondary colors is greater than thepredetermined threshold.

Example 13 includes the subject matter of Examples 9-12, furthercomprising generating a uniformity compensated transfer function for atertiary color based on the first, second and third transfer functions.

Example 14 includes the subject matter of Examples 9-13, furthercomprising transmitting the updated uniformity compensated transferfunctions.

Some embodiments pertain to Example 15 that includes at least onecomputer readable medium having instructions stored thereon, which whenexecuted by one or more processors, cause the processors to performuniformity compensation of a plurality of secondary colors printed bypel forming elements, each of the pel forming elements associated withone of a plurality of primary colors, including generating a uniformitycompensated first primary color transfer function for each of the pelforming elements associated with a first primary color and a uniformitycompensated second color transfer function for each of the pel formingelements associated with a second primary color, generating an updateduniformity compensated first primary color transfer function for each ofthe pel forming elements associated with the first primary color and auniformity compensated third primary color transfer function for each ofthe pel forming elements associated with a third primary color andgenerating an updated uniformity compensated second primary colortransfer function for each of the pel forming elements associated withthe second primary color and an updated uniformity compensated thirdprimary color transfer function for each of the pel forming elementsassociated with a third primary color

Example 16 includes the subject matter of Example 15, havinginstructions stored thereon, which when executed by one or moreprocessors, further cause the processors to receive print imagemeasurement data corresponding to secondary color markings printed bythe pel forming elements.

Example 17 includes the subject matter of Examples 15 and 16, whereinthe print image measurement data comprises optical density dataassociated with each of the plurality of secondary colors.

Example 18 includes the subject matter of Examples 15-17, havinginstructions stored thereon, which when executed by one or moreprocessors, further cause the processors to determine whether variationsin optical density data are greater than a predetermined threshold andgenerate second pass updated uniformity compensated transfer functionsfor the first, second and third primary colors upon a determination thatthe variation in optical density data for the secondary colors isgreater than the predetermined threshold.

Example 19 includes the subject matter of Examples 15-18, havinginstructions stored thereon, which when executed by one or moreprocessors, further cause the processors to generate a uniformitycompensated transfer function for a tertiary color based on the first,second and third transfer functions.

Example 20 includes the subject matter of Examples 15-19, havinginstructions stored thereon, which when executed by one or moreprocessors, further cause the processors to transmit the updateduniformity compensated transfer functions.

Whereas many alterations and modifications of the present invention willno doubt become apparent to a person of ordinary skill in the art afterhaving read the foregoing description, it is to be understood that anyparticular embodiment shown and described by way of illustration is inno way intended to be considered limiting. Therefore, references todetails of various embodiments are not intended to limit the scope ofthe claims, which in themselves recite only those features regarded asessential to the invention.

What is claimed is:
 1. A system comprising: at least one physical memorydevice to store calibration logic; and one or more processors coupledwith the at least one physical memory device to execute the calibrationlogic to perform uniformity compensation of a plurality of secondarycolors that have been printed by pel forming elements, each of the pelforming elements associated with one of a plurality of primary colors,including: generating a uniformity compensated first primary colortransfer function for each of the pel forming elements associated with afirst primary color and a uniformity compensated second primary colortransfer function for each of the pel forming elements associated with asecond primary color; generating an updated uniformity compensated firstprimary color transfer function for each of the pel forming elementsassociated with the first primary color and a uniformity compensatedthird primary color transfer function for each of the pel formingelements associated with a third primary color; and generating anupdated uniformity compensated second primary color transfer functionfor each of the pel forming elements associated with the second primarycolor and an updated uniformity compensated third primary color transferfunction for each of the pel forming elements associated with a thirdprimary color.
 2. The system of claim 1, wherein the calibration logicreceives print image measurement data corresponding to secondary colormarkings printed by the pel forming elements.
 3. The system of claim 2,wherein the print image measurement data comprises optical density dataassociated with each of the plurality of secondary colors.
 4. The systemof claim 3, wherein the calibration logic further: determines whethervariations in optical density data are greater than a predeterminedthreshold; and generates second pass updated uniformity compensatedtransfer functions for the first, second and third primary colors upon adetermination that the variation in optical density data for thesecondary colors is greater than the predetermined threshold.
 5. Thesystem of claim 1, wherein the calibration logic further generates auniformity compensated transfer function for a tertiary color based onthe first, second and third transfer functions.
 6. The system of claim1, wherein the calibration logic further transmits the updateduniformity compensated transfer functions.
 7. The system of claim 6,further comprising a print engine to receive the uniformity compensatedtransfer functions.
 8. The system of claim 2, wherein the print imagemeasurement data comprises color space lightness data associated witheach of the plurality of secondary colors.
 9. A method comprisingperforming uniformity compensation of a plurality of secondary colorsthat have been printed by pel forming elements, each of the pel formingelements associated with one of a plurality of primary colors,including: generating a uniformity compensated first primary colortransfer function for each of the pel forming elements associated with afirst primary color and a uniformity compensated second primary colortransfer function for each of the pel forming elements associated with asecond primary color; generating an updated uniformity compensated firstprimary color transfer function for each of the pel forming elementsassociated with the first primary color and a uniformity compensatedthird primary color transfer function for each of the pel formingelements associated with a third primary color; and generating anupdated uniformity compensated second primary color transfer functionfor each of the pel forming elements associated with the second primarycolor and an updated uniformity compensated third primary color transferfunction for each of the pel forming elements associated with a thirdprimary color.
 10. The method of claim 9, further comprising receivingprint image measurement data corresponding to secondary color markingsprinted by the pel forming elements.
 11. The method of claim 10, whereinthe print image measurement data comprises optical density dataassociated with each of the plurality of secondary colors.
 12. Themethod of claim 11, further comprising: determining whether variationsin optical density data are greater than a predetermined threshold; andgenerating second pass updated uniformity compensated transfer functionsfor the first, second and third primary colors upon a determination thatthe variation in optical density data for the secondary colors isgreater than the predetermined threshold.
 13. The method of claim 9,further comprising generating a uniformity compensated transfer functionfor a tertiary color based on the first, second and third transferfunctions.
 14. The method of claim 9, further comprising transmittingthe updated uniformity compensated transfer functions.
 15. At least onenon-transitory computer readable medium having instructions storedthereon, which when executed by one or more processors, cause theprocessors to perform uniformity compensation of a plurality ofsecondary colors that have been printed by pel forming elements, each ofthe pel forming elements associated with one of a plurality of primarycolors, including: generating a uniformity compensated first primarycolor transfer function for each of the pel forming elements associatedwith a first primary color and a uniformity compensated second primarycolor transfer function for each of the pel forming elements associatedwith a second primary color; generating an updated uniformitycompensated first primary color transfer function for each of the pelforming elements associated with the first primary color and auniformity compensated third primary color transfer function for each ofthe pel forming elements associated with a third primary color; andgenerating an updated uniformity compensated second primary colortransfer function for each of the pel forming elements associated withthe second primary color and an updated uniformity compensated thirdprimary color transfer function for each of the pel forming elementsassociated with a third primary color.
 16. The computer readable mediumof claim 15, having instructions stored thereon, which when executed byone or more processors, further cause the processors to receive printimage measurement data corresponding to secondary color markings printedby the pel forming elements.
 17. The computer readable medium of claim16, wherein the print image measurement data comprises optical densitydata associated with each of the plurality of secondary colors.
 18. Thecomputer readable medium of claim 17, having instructions storedthereon, which when executed by one or more processors, further causethe processors to: determine whether variations in optical density dataare greater than a predetermined threshold; and generate second passupdated uniformity compensated transfer functions for the first, secondand third primary colors upon a determination that the variation inoptical density data for the secondary colors is greater than thepredetermined threshold.
 19. The computer readable medium of claim 15,having instructions stored thereon, which when executed by one or moreprocessors, further cause the processors to generate a uniformitycompensated transfer function for a tertiary color based on the first,second and third transfer functions.
 20. The computer readable medium ofclaim 15, having instructions stored thereon, which when executed by oneor more processors, further cause the processors to transmit the updateduniformity compensated transfer functions.